The present invention relates to a system and a method for automatically printed a barcode on paper or other printer substrate, and in particular, to such a printed barcode for data transfer and/or capture.
Although a significant amount of data is transferred electronically, the requirement for paper still exists. Businesses today receive and send data of many different types on paper, including invoices, receipts, purchase requests, forms of various kinds, reports and so forth. The paper itself may be transferred by mail or by facsimile, for example. When transferred by facsimile, the quality of the resultant text and/or graphics may be degraded. Furthermore, the facsimile machine and/or printer may not place the text or graphics in exactly the same location on the paper every time. All of these factors combine to render the automatic reading and analysis of data from printed paper very difficult and frequently inaccurate. For example, OCR (optical character recognition) of a scanned sheet of paper requires good quality reproduction of the textual data in order to obtain an accurate analysis of the printed text. Such high quality is often difficult to obtain from a facsimile, for example. Thus, a human worker often must read each sheet of printed paper and transfer the data manually to a computer, which is highly inefficient.
However, paper does have certain advantages over completely electronic forms of data transfer. Even though attempts have been made to provide an electronic xe2x80x9csignaturexe2x80x9d or xe2x80x9cwatermarkxe2x80x9d, or other form of verification for electronically stored and transferred data, none of these attempts has resulted in such a verification which is as accurate and as reliable as the manually written signature of a human being on a sheet of paper. Thus, electronically transferred data may be easier to automatically read and analyze, without the intervention of a human worker, but suffers from the inability to guarantee the authenticity of the data.
A more useful solution would both enable data to be accurately and automatically read and analyzed from a sheet of printed paper, without the intervention of a human worker, and would also provide a mechanism for guaranteeing the authenticity of data which is stored and transferred electronically without being printed onto paper or other printable substrate. Currently, neither problem is adequately solved by the background art, and certainly the combination of both problems is not solved by a single background art solution.
There is thus a need for, and it would be useful to have, a system and a method for enabling data to be automatically read and analyzed from a printed sheet of paper or other printable substrate, even if the quality of the data is degraded by poor reproduction such as by a facsimile machine, for example, and which would also be suitable for guaranteeing the authenticity of electronically stored and transferred data.
The present invention is of a system and a method for automatically analyzing and reading a barcode present in an electronically stored and transferred file, and/or printed on a printable substrate, such as a sheet of paper. Such a barcode can be used to store a large amount of information in a small area. Various uses of the system and method of the present invention are possible, for example in order to authenticate and/or identify a document. In addition, such a barcode could be used to transmit information which could be automatically read and analyzed.
The present invention provides a single solution to the combined problems of data authentication and verification for electronically stored and transferred data, as well as of automatic reading and analysis of data printed on a printable substrate. Although the implementation of the present invention in which the data is printed onto paper or other physical substrate material is particularly preferred, the overall flexibility of the present invention enables it to be employed in a variety of embodiments.
According to the present invention, there is provided a system for printing a barcode onto a printable substrate, the barcode featuring a pattern of a plurality of marks, the system comprising: (a) an output device for receiving a plurality of printing commands and for printing a printable substrate according to the plurality of printing commands; (b) a computational device for receiving data to be printed; and (c) a printer driver module for being operated by the computational device and for translating at least a portion of the data to be printed into the barcode, and for determining at least one command for printing the barcode onto the printable substrate to form a printed barcode, the printer driver module passing the at least one command to the output device.
According to another embodiment of the present invention, there is provided a method for printing a barcode onto a printable substrate, the method comprising the steps of: (a) receiving data; (b) translating at least a portion of the data into a pattern of a plurality of marks; (c) determining at least one printing command for printing the pattern of the plurality marks; and (d) printing the pattern of the plurality of marks onto the printable substrate to form the barcode.
Hereinafter, the term xe2x80x9cprintable substratexe2x80x9d refers to any type of material onto which text and/or graphics can be printed, for example by a laser printer or an ink jet printer. Examples of such a substrate include but are not limited to a sheet of paper, cardboard or other wood pulp-based product, plastic and metal.
Hereinafter, the term xe2x80x9cnetworkxe2x80x9d refers to a connection between any two computers which permits the transmission of data, and includes but is not limited to, the Internet, a WAN (Wide Area Network) and a LAN (Local Area Network).
Hereinafter, the term xe2x80x9ccomputerxe2x80x9d includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows(trademark), OS/2(trademark) or Linux; Macintosh(trademark) computers; computers having JAVA(trademark)-OS as the operating system; and graphical workstations such as the computers of Sun Microsystems(trademark) and Silicon Graphics(trademark), and other computers having some version of the UNIX operating system such as AIX(trademark) or SOLARIS(trademark) of Sun Microsystems(trademark); or any other known and available operating system; as well as a terminal or any computational device containing a microprocessor. Hereinafter, the term xe2x80x9cWindows(trademark)xe2x80x9d includes but is not limited to Windows95(trademark), Windows 3.x(trademark) in which xe2x80x9cxxe2x80x9d is an integer such as xe2x80x9c1xe2x80x9d, Windows NT(trademark), Windows98(trademark), Windows CE(trademark) and any upgraded versions of these operating systems by Microsoft Inc. (USA).
The method of the present invention could also be described as a plurality of instructions being performed by a data processor, such that the method of the present invention could be implemented as hardware, software, firmware or a combination thereof. For the present invention, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computer by which the software application is executed. Examples of suitable programming languages include, but are not limited to, C, C++ and Java.